Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


meshchatx/src/backend/database/map_overlays.py b1ee794316b686bdda29b9b5dbb118afa201be4d (b1ee7943) Text, 4.19 KB

T8b949e# SPDX-License-Identifier: 0BSD

Tff7b72from T7ee787datetime Tff7b72import Te6edf3UTCTb4b4b4, Te6edf3datetime

Tff7b72from T7ee787.T7ee787provider Tff7b72import Te6edf3DatabaseProvider


Tff7b72class T56d364MapOverlaysDAOTb4b4b4:
Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4, Te6edf3providerTb4b4b4: Te6edf3DatabaseProviderTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffprovider Tff7b72= Te6edf3provider

Tff7b72def Td2a8ffcount_for_identityTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3row Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT COUNT(*) AS c FROM map_overlay_sources WHERE identity_hash = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffcTa5d6ff"Tb4b4b4]Tb4b4b4) Tff7b72if Te6edf3row Tff7b72else T79c0ff0

Tff7b72def Td2a8ffget_by_idTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3overlay_idTb4b4b4: Tffa657intTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
Ta5d6ff"Ta5d6ffSELECT * FROM map_overlay_sources WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3overlay_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffget_by_uniqueTb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4,
Te6edf3kindTb4b4b4: Tffa657strTb4b4b4,
Te6edf3destination_hashTb4b4b4: Tffa657strTb4b4b4,
Te6edf3path_or_repo_pathTb4b4b4: Tffa657strTb4b4b4,
Te6edf3refTb4b4b4: Tffa657strTb4b4b4,
Tb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchoneTb4b4b4(
T8b949e"""
SELECT * FROM map_overlay_sources
WHERE identity_hash = ?
AND kind = ?
AND destination_hash = ?
AND path_or_repo_path = ?
AND ref = ?
"""Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4, Te6edf3kindTb4b4b4, Te6edf3destination_hashTb4b4b4, Te6edf3path_or_repo_pathTb4b4b4, Te6edf3refTb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8fflist_for_identityTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
T8b949e"""
SELECT * FROM map_overlay_sources
WHERE identity_hash = ?
ORDER BY updated_at DESC, id DESC
"""Tb4b4b4,
Tb4b4b4(Te6edf3identity_hashTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8fflist_due_autorefreshTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3now_isoTb4b4b4: Tffa657strTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8fffetchallTb4b4b4(
T8b949e"""
SELECT * FROM map_overlay_sources
WHERE enabled = 1
AND refresh_interval_seconds > 0
AND status != 'fetching'
AND (
next_refresh_at IS NULL
OR next_refresh_at <= ?
)
ORDER BY (next_refresh_at IS NOT NULL), next_refresh_at ASC, id ASC
"""Tb4b4b4,
Tb4b4b4(Te6edf3now_isoTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffinsertTb4b4b4(
Tff7b72selfTb4b4b4,
Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4,
Tff7b72*Tb4b4b4,
Te6edf3kindTb4b4b4: Tffa657strTb4b4b4,
Te6edf3destination_hashTb4b4b4: Tffa657strTb4b4b4,
Te6edf3path_or_repo_pathTb4b4b4: Tffa657strTb4b4b4,
Te6edf3refTb4b4b4: Tffa657strTb4b4b4,
Te6edf3nameTb4b4b4: Tffa657strTb4b4b4,
Te6edf3group_nameTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3repositoryTb4b4b4: Tffa657str Tff7b72| Tff7b72None Tff7b72= Tff7b72NoneTb4b4b4,
Te6edf3enabledTb4b4b4: Tffa657int Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3visibleTb4b4b4: Tffa657int Tff7b72= T79c0ff1Tb4b4b4,
Te6edf3refresh_interval_secondsTb4b4b4: Tffa657int Tff7b72= T79c0ff0Tb4b4b4,
Te6edf3statusTb4b4b4: Tffa657str Tff7b72= Ta5d6ff"Ta5d6ffpendingTa5d6ff"Tb4b4b4,
Tb4b4b4) Tff7b72-Tff7b72> Tffa657intTb4b4b4:
Te6edf3now Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
Te6edf3cur Tff7b72= Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
T8b949e"""
INSERT INTO map_overlay_sources (
identity_hash, kind, destination_hash, path_or_repo_path, ref,
group_name, repository, name, enabled, visible,
refresh_interval_seconds, status, created_at, updated_at
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
"""Tb4b4b4,
Tb4b4b4(
Te6edf3identity_hashTb4b4b4,
Te6edf3kindTb4b4b4,
Te6edf3destination_hashTb4b4b4,
Te6edf3path_or_repo_pathTb4b4b4,
Te6edf3refTb4b4b4,
Te6edf3group_nameTb4b4b4,
Te6edf3repositoryTb4b4b4,
Te6edf3nameTb4b4b4,
Te6edf3enabledTb4b4b4,
Te6edf3visibleTb4b4b4,
Te6edf3refresh_interval_secondsTb4b4b4,
Te6edf3statusTb4b4b4,
Te6edf3nowTb4b4b4,
Te6edf3nowTb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)
Tff7b72return Tffa657intTb4b4b4(Te6edf3curTff7b72.Td2a8fflastrowid Tff7b72or T79c0ff0Tb4b4b4)

Tff7b72def Td2a8ffupdate_fieldsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3overlay_idTb4b4b4: Tffa657intTb4b4b4, Tff7b72*Tff7b72*Te6edf3fieldsTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72if Tff7b72not Te6edf3fieldsTb4b4b4:
Tff7b72return
Te6edf3fields Tff7b72= Tffa657dictTb4b4b4(Te6edf3fieldsTb4b4b4)
Te6edf3fieldsTb4b4b4[Ta5d6ff"Ta5d6ffupdated_atTa5d6ff"Tb4b4b4] Tff7b72= Te6edf3datetimeTff7b72.Td2a8ffnowTb4b4b4(Te6edf3UTCTb4b4b4)
Te6edf3cols Tff7b72= Ta5d6ff"Ta5d6ff, Ta5d6ff"Tff7b72.Td2a8ffjoinTb4b4b4(Ta5d6fffTa5d6ff"Tffd700{Te6edf3kTffd700}Ta5d6ff = ?Ta5d6ff" Tff7b72for Te6edf3k Tff7b72in Te6edf3fieldsTb4b4b4)
Te6edf3values Tff7b72= Tffa657listTb4b4b4(Te6edf3fieldsTff7b72.Td2a8ffvaluesTb4b4b4(Tb4b4b4)Tb4b4b4) Tff7b72+ Tb4b4b4[Te6edf3overlay_idTb4b4b4]
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6fffTa5d6ff"Ta5d6ffUPDATE map_overlay_sources SET Tffd700{Te6edf3colsTffd700}Ta5d6ff WHERE id = ?Ta5d6ff"Tb4b4b4,
Tffa657tupleTb4b4b4(Te6edf3valuesTb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffdeleteTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3overlay_idTb4b4b4: Tffa657intTb4b4b4) Tff7b72-Tff7b72> Tff7b72NoneTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffproviderTff7b72.Td2a8ffexecuteTb4b4b4(
Ta5d6ff"Ta5d6ffDELETE FROM map_overlay_sources WHERE id = ?Ta5d6ff"Tb4b4b4,
Tb4b4b4(Te6edf3overlay_idTb4b4b4,Tb4b4b4)Tb4b4b4,
Tb4b4b4)

Tff7b72def Td2a8ffdelete_for_identityTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3identity_hashTb4b4b4: Tffa657strTb4b4b4, Te6edf3overlay_idTb4b4b4: Tffa657intTb4b4b4) Tff7b72-Tff7b72> Tffa657boolTb4b4b4:
Te6edf3row Tff7b72= Tff7b72selfTff7b72.Td2a8ffget_by_idTb4b4b4(Te6edf3overlay_idTb4b4b4)
Tff7b72if Tff7b72not Te6edf3row Tff7b72or Te6edf3rowTb4b4b4[Ta5d6ff"Ta5d6ffidentity_hashTa5d6ff"Tb4b4b4] Tff7b72!= Te6edf3identity_hashTb4b4b4:
Tff7b72return Tff7b72False
Tff7b72selfTff7b72.Td2a8ffdeleteTb4b4b4(Te6edf3overlay_idTb4b4b4)
Tff7b72return Tff7b72True


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────